package com.neusoft.ch5.hw;

import java.util.Scanner;

public class HomeWork {

	public static void main(String[] args) {
		test06();
		//test05();

	}

	/**
	 * 练习题5
	 */
	private static void test06() {
		// 初始化数组
		int[] arr0 = new int[] { 18, 25, 7, 36, 13, 2, 89, 63 };
		// 最大值
		int max = arr0[0];
		// 最大值下标
		int index = 0;
		for (int i = 1; i < arr0.length; i++) {
			if (arr0[i] > max) {
				// 保留当前的最大值信息
				max = arr0[i];
				index = i;
			}
		}

		// 循环完成之后，输出最大值信息
		System.out.println("最大值为：" + max + ";下标为：" + index);

	}

	/**
	 * 练习题5
	 */
	private static void test05() {
		// 1、调用初始化子函数，初始化一个二维数组
		double[][] arr2D = initArr2D();
		System.out.println("初始化的二维数组为：");
		// 2、打印二维数组
		printArr2D(arr2D);
	}

	/**
	 * 控制台输入double型的二维数组
	 * 
	 * @return 二维数组
	 */
	private static double[][] initArr2D() {
		// 输入的类
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入二维数组的行数[大于1的整数]：");
		// 接收二维数组的行数
		int rows = sc.nextInt();
		System.out.println("请输入二维数组的列数[大于1的整数]：");
		// 接收二维数组的行数
		int cols = sc.nextInt();
		// 设置返回的二维数组的变量
		double[][] arrD = new double[rows][cols];
		// 使用循环从控制台依次输入二维数组的各个元素进行初始化赋值
		for (int i = 0; i < rows; i++) {
			for (int j = 0; j < cols; j++) {
				System.out.println("请输入二维数组下标为[" + i + "," + j + "]的元素：");
				double inputVal = sc.nextDouble();
				// 赋值
				arrD[i][j] = inputVal;
			}
		}
		// 返回值
		return arrD;
	}

	/**
	 * 打印二维数组
	 * 
	 * @param arr2D
	 *            被打印的二维数组
	 */
	private static void printArr2D(double[][] arr2D) {
		// 变量行
		for (int i = 0; i < arr2D.length; i++) {
			// 遍历列
			for (int j = 0; j < arr2D[i].length; j++) {
				System.out.print("    " + arr2D[i][j]);
			}
			// 换行
			System.out.println();
		}
	}

}
